home *** CD-ROM | disk | FTP | other *** search
- package LWP::Debug; # legacy
-
- require Exporter;
- @ISA = qw(Exporter);
- @EXPORT_OK = qw(level trace debug conns);
-
- use Carp ();
-
- my @levels = qw(trace debug conns);
- %current_level = ();
-
-
- sub import
- {
- my $pack = shift;
- my $callpkg = caller(0);
- my @symbols = ();
- my @levels = ();
- for (@_) {
- if (/^[-+]/) {
- push(@levels, $_);
- }
- else {
- push(@symbols, $_);
- }
- }
- Exporter::export($pack, $callpkg, @symbols);
- level(@levels);
- }
-
-
- sub level
- {
- for (@_) {
- if ($_ eq '+') { # all on
- # switch on all levels
- %current_level = map { $_ => 1 } @levels;
- }
- elsif ($_ eq '-') { # all off
- %current_level = ();
- }
- elsif (/^([-+])(\w+)$/) {
- $current_level{$2} = $1 eq '+';
- }
- else {
- Carp::croak("Illegal level format $_");
- }
- }
- }
-
-
- sub trace { _log(@_) if $current_level{'trace'}; }
- sub debug { _log(@_) if $current_level{'debug'}; }
- sub conns { _log(@_) if $current_level{'conns'}; }
-
-
- sub _log
- {
- my $msg = shift;
- $msg .= "\n" unless $msg =~ /\n$/; # ensure trailing "\n"
-
- my($package,$filename,$line,$sub) = caller(2);
- print STDERR "$sub: $msg";
- }
-
- 1;
-
- __END__
-
- =head1 NAME
-
- LWP::Debug - deprecated
-
- =head1 DESCRIPTION
-
- LWP::Debug used to provide tracing facilities, but these are not used
- by LWP any more. The code in this module is kept around
- (undocumented) so that 3rd party code that happen to use the old
- interfaces continue to run.
-
- One useful feature that LWP::Debug provided (in an imprecise and
- troublesome way) was network traffic monitoring. The following
- section provide some hints about recommened replacements.
-
- =head2 Network traffic monitoring
-
- The best way to monitor the network traffic that LWP generates is to
- use an external TCP monitoring program. The Wireshark program
- (L<http://www.wireshark.org/>) is higly recommended for this.
-
- Another approach it to use a debugging HTTP proxy server and make
- LWP direct all its traffic via this one. Call C<< $ua->proxy >> to
- set it up and then just use LWP as before.
-
- For less precise monitoring needs just setting up a few simple
- handlers might do. The following example sets up handlers to dump the
- request and response objects that pass through LWP:
-
- use LWP::UserAgent;
- $ua = LWP::UserAgent->new;
- $ua->default_header('Accept-Encoding' => scalar HTTP::Message::decodable());
-
- $ua->add_handler("request_send", sub { shift->dump; return });
- $ua->add_handler("response_done", sub { shift->dump; return });
-
- $ua->get("http://www.example.com");
-
- =head1 SEE ALSO
-
- L<LWP::UserAgent>
-